windows 下包管理工具 vcpkg 安装
主要参考博文:vcpkg 安装及使用_我叫电池的博客 - CSDN 博客_vcpkg 安装
由于需要在离线环境下面搭建开发环境,所有的包只能离线安装了,包括这个管理工具 vcpkg 的安装,也必须是离线安装。
一. 下载安装 vcpkg 管理工具
下载目录:microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS (github.com)
这个解压后就是一个目录树,通过这些目录树对包进行管理。cmd 执行 bootstrap-vcpkg.bat 脚本,会从网络上下载 vcpkg.exe,以后的包就都通过 vcpkg.exe 去搜索和下载。然而离线环境显然是没法将这个. exe 下载下来的 (但是可以看到它要从哪里下载文件,要放到哪里,这些打印信息是有用的)。记事本打开 bootstrap-vckpg.bat,发现它执行了 scripts / 目录下的 bootstrap.ps1 这个脚本。分析 bootstrap.ps1,可以看到它调用了 tls12-download.exe 下载 vcpkg.exe:
之前执行 bootstrap-vcpkg.bat 的报错信息,里面有 vcpkg.exe 的下载网址,手动下载并将其放到指定位置,并将下载指令注释掉,重新执行 bootstrap-vcpkg.bat,即可跳过下载,完成 vcpkg 工具的安装。
二. 使用 vcpkg 安装软件包
参考 https://blog.csdn.net/vvaa00/article/details/113457742 中离线安装软件包,即可在没网的环境下完成开发环境搭建。可以先将待下载的软件包地址整理好,在一台有网络的电脑上下载好,放入 downloads 文件夹中。比如在安装 apr-util 时,有很多依赖包需要安装,即可将需要下载的软件包整理成为 packages.txt,执行批量下载脚本,等待下载完成,拷贝到离线环境,继续安装即可。
//file packages.txt
https://github.com/libexpat/libexpat/archive/R_2_4_9.tar.gz
https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-3-any.pkg.tar.zst
https://github.com/openssl/openssl/archive/openssl-3.0.5.tar.gz
https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-32bit.zip
https://github.com/gdraheim/zziplib/archive/v0.13.72.tar.gz
https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win32/nasm-2.15.05-win32.zip
windows 批量下载脚本 pkg-download.bat
@echo off
set urllist=C:\Users\Desktop\packages.txt
set dstDir=C:\Users\Desktop\packages\
setlocal enabledelayedexpansion
for /f %%a in (%urllist%) do (
set dst=%dstDir%%%~na
rem ***********使用Windows自带的Edge打开下载网页下载(速度最快)*****
rem explorer.exe "microsoft-edge:%%a"
rem ***********使用Windows自带的bitsadmin下载(速度最慢)*****
rem bitsadmin /rawreturn /transfer down %%a !dst!
rem ***********使用Windows自带的certutil下载*********
rem certutil.exe -urlcache -split -f %%a !dst!
rem ***********使用powershell的wget下载*************
PowerShell -Command "&{wget -Uri %%a -OutFile !dst!}"
)
pause
三. windows 编译 log4cxx 实战
主要参考官方教程:Apache log4cxx: Build with CMake
其中 apr 和 apr-util 可以直接利用 vcpkg.exe install apr apr-util 安装, 只用最后面两句指令,生成器根据安装的 visual studio 版本选择:
cd vcpkg
cmake -S D:/download/Log4cxx-0.13.0 -B buildtrees\Log4cxx -G "Visual Studio 12 2013" -DCMAKE_INSTALL_PREFIX=installed
##如果编译64位项目,则:
#cmake -S D:/download/Log4cxx-0.13.0 -B buildtrees\Log4cxx -G "Visual Studio 12 2013 WIN64" -DCMAKE_INSTALL_PREFIX=installed
cmake --build buildtrees\Log4cxx --target install --config Release
如果执行上面的语句出错,提示找不到 sed 和 zip 工具,可以在 vcpkg 文件夹下面搜索,看看有没有,因为在安装某些软件包时,这些工具可能也会被一并安装,比如 vcpkg install zziplib 的时候会有 zip 工具。找到这些工具路径,导入到环境变量中,即可配置通过:
cmd:
set PATH=xx/xx/bin;xx/xx/lib;%PATH%
powershell:
$env:PATH+=";xx/xx/bin;xx/xx/lib"